$├462 ╔NCREMENT .┘ TO POINT TO THE TRACK LINK FOR THE FILE.
$├463 ╙AVE .┴ (FILE TYPE) ON THE STACK.
$├464 ┴╬─ .┴ WITH $40 (FILE LOCKED BIT) AND SAVE THIS RESULT IN ╘0 [$48].
$├468 ╨ULL .┴ (FILE TYPE) OFF THE STACK AND ┴╬─ WITH $─╞ (ELIMINATES DELETED WITH REPLACEMENT FLAG) AND SEE IF BIT 7 IS SET. ╔F IT SET THEN THE FILE WAS CLOSED PROPERLY SO BRANCH TO ├╨42.
$├46─ ╙ET THE DELETE WITH REPLACEMENT FLAG (╧╥ .┴ WITH $20).
$├46╞ ├╨42 ┴╬─ .┴ WITH $27 TO MASK OFF EVERYTHING EXCEPT THE FILE TYPE AND REPLACEMENT BITS.
$├471 ╧╥ .┴ WITH ╘0 [$48] TO RESTORE THE LOCKED BIT.
$├473 ╙AVE .┴ IN ╘0 [$48].
$├475 ╧BTAIN BIT 7 OF ╨┴╘╘┘╨,╪ [$4├71,╪] FOR THIS FILE, ╧╥ IN ╘0 [$48], AND SAVE THE RESULT BACK INTO ╨┴╘╘┘╨,╪ [$4├71,╪].
$├47╞ ╧BTAIN ╞╔╠─╥╓,╪ [$4├6├,╪] (DRIVE # FOR THIS FILE NAME), ┴╬─ IT WITH $80 TO RETAIN THE DEFAULT BIT, ╧╥ IN ─╥╓╬╒═ [$54], AND SAVE THE RESULT BACK INTO ╞╔╠─╥╓,╪ [$4├6├,╪].
$├489 ╧BTAIN THE TRACK LINK FOR THE FILE FROM THE DIRECTORY (─╔╥┬╒╞),┘ [($69),┘] AND SAVE INTO ╞╔╠╘╥╦,╪ [$4┼36,╪].
$├48┼ ╔NCREMENT .┘ TO POINT TO THE SECTOR LINK AND OBTAIN THE SECTOR LINK FROM (─╔╥┬╒╞),┘ [($69),┘] AND SAVE INTO ╞╔╠╙┼├,╪ [$4┼3┬,╪].
$├494 ╔F ╥┼├ [$┬9], THE RECORD LENGTH, IS NOT ZERO THEN CONTINUE WITH ├═╨├╚╦ [$├49┼] TO SEE IF ALL FILES HAVE BEEN FOUND.
$├498 ╧BTAIN THE RECORD LENGTH FROM THE DIRECTORY ENTRY (─╔╥┬╒╞),┘ [($69),┘] AND SAVE IT IN ╥┼├ [$┬9].
├═╨├╚╦ ├HECK FILE TABLE FOR UNFOUND FILES
$├49┼ ╙ET ╞╧╒╬─ [$4├┼0] TO $╞╞ TO INDICATE ALL FILES ARE FOUND.
$├4┴3 ├OPY ╞2├╬╘ [$┬3] TO ╞2╨╘╥ [$┬4]. ╞2╨╘╥ IS USED AS A LOCAL COUNTER SINCE WE DON'T WANT TO LOSE THE ORIGINAL VALUE.
$├4┴7 ├├10 ─ECREMENT ╞2╨╘╥ [$┬4] SO IT CONTAINS THE INDEX OF ONE OF THE FILE NAMES IN THE TABLE. ╔F THIS COUNT IS >= 0 THEN WE HAVE NOT REACHED THE END OF THE FILE TABLE SO BRANCH TO ├├15 TO SEE IF THIS ENTRY HAS BEEN FOUND.
$├4┴┬ ┴LL FILES FOUND SO RETURN.
$├4┴├ ├├15 ╠OAD .╪ WITH ╞2╨╘╥ [$┬6], THE INDEX OF THE FILE NAME IN THE TABLE.
$├4┴┼ ╔F BIT 7 OF ╨┴╘╘┘╨,╪ [$4├71,╪] IS SET THEN THIS FILE HAS NOT YET BEEN FOUND SO BRANCH TO ├├20.
$├4┬3 ╔F ╞╔╠╘╥╦,╪ [$4┼36,╪] IS NOT ZERO THEN THE FILE HAS BEEN FOUND SO BRANCH TO ├├10 TO CHECK THE NEXT FILE NAME.
$├4┬8 ├├20 ╞ILE HAS NOT BEEN FOUND SO SET ╞╧╒╬─ [$4├┼0] TO ZERO AND RETURN.
║FP
╙╥├╚╙╘ ╙ET UP TO START DIRECTORY SEARCH
$├4┬┼ ╩╙╥ ┴╒╘╧╔ [$├54╞] TO CHECK THE DRIVE FOR DISKETTE AND INITIALIZE.
$├4├1 ├LEAR ─┼╠╙┼├ [$4├┼2] AND SET ┼╬╘╞╬─ [$4├┬5] TO $╞╞ TO INDICATE AN ENTRYHAS NOT BEEN FOUND.
$├4├┴ ├OPY ─╔╥╘╥╦ [$╞┼6┬] TO ╘╥┴├╦ [$55] AND SET THE ╙┼├╘╧╥ [$56] TO $01.
$├4─3 ╙ET ╠╙╘┬╒╞ [$4├┼3] TO $01 TO INDICATE ╬╧╘ LAST BLOCK.
$├4─6 ╩╙╥ ╧╨╬╔╥─ [$─4─┼] TO OPEN A READ CHANNEL AND GET THE FIRST 1 OR 2 BLOCKS OF THE DIRECTORY.
$├4─9 ╙╥10 ╔F ╠╙╘┬╒╞ [$4├┼3] IS NOT ZERO THEN WE HAVE NOT YET EXHAUSTED THE DIRECTORY SO BRANCH TO ╙╥15 TO SCAN THE ENTRIES.
$├4─┼ ╥ETURN.
$├4─╞ ╙╥15 ╙ET ╞╔╠├╬╘ [$4├┼5] TO $07 TO INDICATE 8 ENTRIES ARE TO BE SCANNED (0-7 INCLUSIVE).
$├4┼4 ╙ET .┴ TO $00 AND ╩╙╥ ─╥─┬┘╘ [$─561] TO OBTAIN THE FIRST BYTE OF THE DIRECTORY.
$├4┼9 ╘HIS BYTE IS THE NEXT TRACK LINK. ╙AVE IT INTO ╠╙╘┬╒╞ [$4├┼3] SO THAT IF THIS BLOCK IS THE LAST THEN ╠╙╘┬╒╞ WILL BE ZERO.
$├4┼├ ╙╥20 ╩╙╥ ╟┼╘╨╬╘ [$─553] TO SET UP A POINTER TO THE DIRECTORY BLOCK - NAMELY ─╔╥┬╒╞ [$69-6┴].
$├4┼╞ ─ECREMENT ╞╔╠├╬╘ [$4├┼5], THE NUMBER OF ENTRIES REMAINING TO BE SCANNED AND SET .┘ TO 0.
$├4╞2 ╟ET THE FILE TYPE FROM THE DIRECTORY ENTRY (─╔╥┬╒╞),┘ [($69),┘] AND IF NOT ZERO THEN THIS IS NOT A DELETED/UNUSED ENTRY SO BRANCH TO ╙╥30.
$├4╞8 ╘HIS ENTRY IS AVAILABLE. ╔F ─┼╠╙┼├ [$4├┼2] IS NON-ZERO THEN AN AVAILABLE ENTRY HAS ALREADY BEEN FOUND SO BRANCH TO ╙┼┴╥├╚ [$├529] TO CONTINUE THE SCAN.
$├4╞─ ╩╙╥ ├╒╥┬╠╦ [$──┼6] TO SET UP TRACK AND SECTOR FOR THIS BLOCK AND THEN COPY THE ╙┼├╘╧╥ [$56] NUMBER TO ─┼╠╙┼├ [$4├┼2].
$├505 ╧BTAIN THE OFFSET TO THIS AVAILABLE ENTRY FROM THE LOW ORDER BYTE OF ─╔╥┬╒╞ [$69].
$├507 ╠OAD .╪ FROM ─┼╠╔╬─ [$┴╞] TO SEE IF WE ARE LOOKING FOR A VALID FILE. ╔F THIS IS THE CASE THEN ─┼╠╔╬─ WILL BE ZERO AND THE LOAD WILL SET THE .┌ FLAG.
$├509 ╙AVE THE OFFSET OF THE AVAILABLE ENTRY INTO ─┼╠╔╬─ [$┴╞]. ╘HIS VALUE WILL BE $02, $22, ...
$├50┬ ╔F WE ARE LOOKING FOR A VALID ENTRY THEN BRANCH TO ╙┼┴╥├╚ [$├529]. ╬OTE: ┼VEN THOUGH THE ─┼╠╔╬─ FLAG HAS BECOME NON-ZERO, THE CODE AT ╙╥30 CHECKS THE VALUE AGAINST 1 SO THE NEW VALUES ABOVE STILL SERVE AS THE CORRECT MEANING.
$├50─ ╫E WERE LOOKING FOR AN AVAILABLE ENTRY AND WE HAVE FOUND ONE SO RETURN.
$├50┼ ╙╥30 ╔F ─┼╠╔╬─ [$┴╞] IS NOT $01 WE ARE LOOKING FOR A VALID ENTRY AND WE HAVE FOUND ONE SO BRANCH TO ╙╥50. ╔F ─┼╠╔╬─ IS $01 THEN BRANCH TO ╙┼┴╥├╚ TO CONTINUE LOOKING FOR AN AVAILABLE ENTRY.